/*
 *  This file is part of AndroidIDE.
 *
 *  AndroidIDE is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *
 *  AndroidIDE is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *   along with AndroidIDE.  If not, see <https://www.gnu.org/licenses/>.
 */

package com.itsaky.androidide.xml.permissions

/**
 * Model for a permission entry.
 *
 * @property name The name of the permission as defined in the `android.Manifest.permission` class.
 * @property constant The constant value of the permission.
 * @author Akash Yadav
 */
enum class Permission constructor(val constant: String) {
  ACCEPT_HANDOVER(ManifestPermissionConstants.ACCEPT_HANDOVER),
  ACCESS_BACKGROUND_LOCATION(ManifestPermissionConstants.ACCESS_BACKGROUND_LOCATION),
  ACCESS_BLOBS_ACROSS_USERS(ManifestPermissionConstants.ACCESS_BLOBS_ACROSS_USERS),
  ACCESS_CHECKIN_PROPERTIES(ManifestPermissionConstants.ACCESS_CHECKIN_PROPERTIES),
  ACCESS_COARSE_LOCATION(ManifestPermissionConstants.ACCESS_COARSE_LOCATION),
  ACCESS_FINE_LOCATION(ManifestPermissionConstants.ACCESS_FINE_LOCATION),
  ACCESS_LOCATION_EXTRA_COMMANDS(ManifestPermissionConstants.ACCESS_LOCATION_EXTRA_COMMANDS),
  ACCESS_MEDIA_LOCATION(ManifestPermissionConstants.ACCESS_MEDIA_LOCATION),
  ACCESS_NETWORK_STATE(ManifestPermissionConstants.ACCESS_NETWORK_STATE),
  ACCESS_NOTIFICATION_POLICY(ManifestPermissionConstants.ACCESS_NOTIFICATION_POLICY),
  ACCESS_WIFI_STATE(ManifestPermissionConstants.ACCESS_WIFI_STATE),
  ACCOUNT_MANAGER(ManifestPermissionConstants.ACCOUNT_MANAGER),
  ACTIVITY_RECOGNITION(ManifestPermissionConstants.ACTIVITY_RECOGNITION),
  ADD_VOICEMAIL(ManifestPermissionConstants.ADD_VOICEMAIL),
  ANSWER_PHONE_CALLS(ManifestPermissionConstants.ANSWER_PHONE_CALLS),
  BATTERY_STATS(ManifestPermissionConstants.BATTERY_STATS),
  BIND_ACCESSIBILITY_SERVICE(ManifestPermissionConstants.BIND_ACCESSIBILITY_SERVICE),
  BIND_APPWIDGET(ManifestPermissionConstants.BIND_APPWIDGET),
  BIND_AUTOFILL_SERVICE(ManifestPermissionConstants.BIND_AUTOFILL_SERVICE),
  BIND_CALL_REDIRECTION_SERVICE(ManifestPermissionConstants.BIND_CALL_REDIRECTION_SERVICE),
  BIND_CARRIER_MESSAGING_CLIENT_SERVICE(ManifestPermissionConstants.BIND_CARRIER_MESSAGING_CLIENT_SERVICE),
  BIND_CARRIER_MESSAGING_SERVICE(ManifestPermissionConstants.BIND_CARRIER_MESSAGING_SERVICE),
  BIND_CARRIER_SERVICES(ManifestPermissionConstants.BIND_CARRIER_SERVICES),
  BIND_CHOOSER_TARGET_SERVICE(ManifestPermissionConstants.BIND_CHOOSER_TARGET_SERVICE),
  BIND_COMPANION_DEVICE_SERVICE(ManifestPermissionConstants.BIND_COMPANION_DEVICE_SERVICE),
  BIND_CONDITION_PROVIDER_SERVICE(ManifestPermissionConstants.BIND_CONDITION_PROVIDER_SERVICE),
  BIND_CONTROLS(ManifestPermissionConstants.BIND_CONTROLS),
  BIND_DEVICE_ADMIN(ManifestPermissionConstants.BIND_DEVICE_ADMIN),
  BIND_DREAM_SERVICE(ManifestPermissionConstants.BIND_DREAM_SERVICE),
  BIND_INCALL_SERVICE(ManifestPermissionConstants.BIND_INCALL_SERVICE),
  BIND_INPUT_METHOD(ManifestPermissionConstants.BIND_INPUT_METHOD),
  BIND_MIDI_DEVICE_SERVICE(ManifestPermissionConstants.BIND_MIDI_DEVICE_SERVICE),
  BIND_NFC_SERVICE(ManifestPermissionConstants.BIND_NFC_SERVICE),
  BIND_NOTIFICATION_LISTENER_SERVICE(ManifestPermissionConstants.BIND_NOTIFICATION_LISTENER_SERVICE),
  BIND_PRINT_SERVICE(ManifestPermissionConstants.BIND_PRINT_SERVICE),
  BIND_QUICK_ACCESS_WALLET_SERVICE(ManifestPermissionConstants.BIND_QUICK_ACCESS_WALLET_SERVICE),
  BIND_QUICK_SETTINGS_TILE(ManifestPermissionConstants.BIND_QUICK_SETTINGS_TILE),
  BIND_REMOTEVIEWS(ManifestPermissionConstants.BIND_REMOTEVIEWS),
  BIND_SCREENING_SERVICE(ManifestPermissionConstants.BIND_SCREENING_SERVICE),
  BIND_TELECOM_CONNECTION_SERVICE(ManifestPermissionConstants.BIND_TELECOM_CONNECTION_SERVICE),
  BIND_TEXT_SERVICE(ManifestPermissionConstants.BIND_TEXT_SERVICE),
  BIND_TV_INPUT(ManifestPermissionConstants.BIND_TV_INPUT),
  BIND_TV_INTERACTIVE_APP(ManifestPermissionConstants.BIND_TV_INTERACTIVE_APP),
  BIND_VISUAL_VOICEMAIL_SERVICE(ManifestPermissionConstants.BIND_VISUAL_VOICEMAIL_SERVICE),
  BIND_VOICE_INTERACTION(ManifestPermissionConstants.BIND_VOICE_INTERACTION),
  BIND_VPN_SERVICE(ManifestPermissionConstants.BIND_VPN_SERVICE),
  BIND_VR_LISTENER_SERVICE(ManifestPermissionConstants.BIND_VR_LISTENER_SERVICE),
  BIND_WALLPAPER(ManifestPermissionConstants.BIND_WALLPAPER),
  BLUETOOTH(ManifestPermissionConstants.BLUETOOTH),
  BLUETOOTH_ADMIN(ManifestPermissionConstants.BLUETOOTH_ADMIN),
  BLUETOOTH_ADVERTISE(ManifestPermissionConstants.BLUETOOTH_ADVERTISE),
  BLUETOOTH_CONNECT(ManifestPermissionConstants.BLUETOOTH_CONNECT),
  BLUETOOTH_PRIVILEGED(ManifestPermissionConstants.BLUETOOTH_PRIVILEGED),
  BLUETOOTH_SCAN(ManifestPermissionConstants.BLUETOOTH_SCAN),
  BODY_SENSORS(ManifestPermissionConstants.BODY_SENSORS),
  BODY_SENSORS_BACKGROUND(ManifestPermissionConstants.BODY_SENSORS_BACKGROUND),
  BROADCAST_PACKAGE_REMOVED(ManifestPermissionConstants.BROADCAST_PACKAGE_REMOVED),
  BROADCAST_SMS(ManifestPermissionConstants.BROADCAST_SMS),
  BROADCAST_STICKY(ManifestPermissionConstants.BROADCAST_STICKY),
  BROADCAST_WAP_PUSH(ManifestPermissionConstants.BROADCAST_WAP_PUSH),
  CALL_COMPANION_APP(ManifestPermissionConstants.CALL_COMPANION_APP),
  CALL_PHONE(ManifestPermissionConstants.CALL_PHONE),
  CALL_PRIVILEGED(ManifestPermissionConstants.CALL_PRIVILEGED),
  CAMERA(ManifestPermissionConstants.CAMERA),
  CAPTURE_AUDIO_OUTPUT(ManifestPermissionConstants.CAPTURE_AUDIO_OUTPUT),
  CHANGE_COMPONENT_ENABLED_STATE(ManifestPermissionConstants.CHANGE_COMPONENT_ENABLED_STATE),
  CHANGE_CONFIGURATION(ManifestPermissionConstants.CHANGE_CONFIGURATION),
  CHANGE_NETWORK_STATE(ManifestPermissionConstants.CHANGE_NETWORK_STATE),
  CHANGE_WIFI_MULTICAST_STATE(ManifestPermissionConstants.CHANGE_WIFI_MULTICAST_STATE),
  CHANGE_WIFI_STATE(ManifestPermissionConstants.CHANGE_WIFI_STATE),
  CLEAR_APP_CACHE(ManifestPermissionConstants.CLEAR_APP_CACHE),
  CONTROL_LOCATION_UPDATES(ManifestPermissionConstants.CONTROL_LOCATION_UPDATES),
  DELETE_CACHE_FILES(ManifestPermissionConstants.DELETE_CACHE_FILES),
  DELETE_PACKAGES(ManifestPermissionConstants.DELETE_PACKAGES),
  DELIVER_COMPANION_MESSAGES(ManifestPermissionConstants.DELIVER_COMPANION_MESSAGES),
  DIAGNOSTIC(ManifestPermissionConstants.DIAGNOSTIC),
  DISABLE_KEYGUARD(ManifestPermissionConstants.DISABLE_KEYGUARD),
  DUMP(ManifestPermissionConstants.DUMP),
  EXPAND_STATUS_BAR(ManifestPermissionConstants.EXPAND_STATUS_BAR),
  FACTORY_TEST(ManifestPermissionConstants.FACTORY_TEST),
  FOREGROUND_SERVICE(ManifestPermissionConstants.FOREGROUND_SERVICE),
  GET_ACCOUNTS(ManifestPermissionConstants.GET_ACCOUNTS),
  GET_ACCOUNTS_PRIVILEGED(ManifestPermissionConstants.GET_ACCOUNTS_PRIVILEGED),
  GET_PACKAGE_SIZE(ManifestPermissionConstants.GET_PACKAGE_SIZE),
  GET_TASKS(ManifestPermissionConstants.GET_TASKS),
  GLOBAL_SEARCH(ManifestPermissionConstants.GLOBAL_SEARCH),
  HIDE_OVERLAY_WINDOWS(ManifestPermissionConstants.HIDE_OVERLAY_WINDOWS),
  HIGH_SAMPLING_RATE_SENSORS(ManifestPermissionConstants.HIGH_SAMPLING_RATE_SENSORS),
  INSTALL_LOCATION_PROVIDER(ManifestPermissionConstants.INSTALL_LOCATION_PROVIDER),
  INSTALL_PACKAGES(ManifestPermissionConstants.INSTALL_PACKAGES),
  INSTALL_SHORTCUT(ManifestPermissionConstants.INSTALL_SHORTCUT),
  INSTANT_APP_FOREGROUND_SERVICE(ManifestPermissionConstants.INSTANT_APP_FOREGROUND_SERVICE),
  INTERACT_ACROSS_PROFILES(ManifestPermissionConstants.INTERACT_ACROSS_PROFILES),
  INTERNET(ManifestPermissionConstants.INTERNET),
  KILL_BACKGROUND_PROCESSES(ManifestPermissionConstants.KILL_BACKGROUND_PROCESSES),
  LAUNCH_MULTI_PANE_SETTINGS_DEEP_LINK(ManifestPermissionConstants.LAUNCH_MULTI_PANE_SETTINGS_DEEP_LINK),
  LOADER_USAGE_STATS(ManifestPermissionConstants.LOADER_USAGE_STATS),
  LOCATION_HARDWARE(ManifestPermissionConstants.LOCATION_HARDWARE),
  MANAGE_DOCUMENTS(ManifestPermissionConstants.MANAGE_DOCUMENTS),
  MANAGE_EXTERNAL_STORAGE(ManifestPermissionConstants.MANAGE_EXTERNAL_STORAGE),
  MANAGE_MEDIA(ManifestPermissionConstants.MANAGE_MEDIA),
  MANAGE_ONGOING_CALLS(ManifestPermissionConstants.MANAGE_ONGOING_CALLS),
  MANAGE_OWN_CALLS(ManifestPermissionConstants.MANAGE_OWN_CALLS),
  MANAGE_WIFI_INTERFACES(ManifestPermissionConstants.MANAGE_WIFI_INTERFACES),
  MANAGE_WIFI_NETWORK_SELECTION(ManifestPermissionConstants.MANAGE_WIFI_NETWORK_SELECTION),
  MASTER_CLEAR(ManifestPermissionConstants.MASTER_CLEAR),
  MEDIA_CONTENT_CONTROL(ManifestPermissionConstants.MEDIA_CONTENT_CONTROL),
  MODIFY_AUDIO_SETTINGS(ManifestPermissionConstants.MODIFY_AUDIO_SETTINGS),
  MODIFY_PHONE_STATE(ManifestPermissionConstants.MODIFY_PHONE_STATE),
  MOUNT_FORMAT_FILESYSTEMS(ManifestPermissionConstants.MOUNT_FORMAT_FILESYSTEMS),
  MOUNT_UNMOUNT_FILESYSTEMS(ManifestPermissionConstants.MOUNT_UNMOUNT_FILESYSTEMS),
  NEARBY_WIFI_DEVICES(ManifestPermissionConstants.NEARBY_WIFI_DEVICES),
  NFC(ManifestPermissionConstants.NFC),
  NFC_PREFERRED_PAYMENT_INFO(ManifestPermissionConstants.NFC_PREFERRED_PAYMENT_INFO),
  NFC_TRANSACTION_EVENT(ManifestPermissionConstants.NFC_TRANSACTION_EVENT),
  OVERRIDE_WIFI_CONFIG(ManifestPermissionConstants.OVERRIDE_WIFI_CONFIG),
  PACKAGE_USAGE_STATS(ManifestPermissionConstants.PACKAGE_USAGE_STATS),
  PERSISTENT_ACTIVITY(ManifestPermissionConstants.PERSISTENT_ACTIVITY),
  POST_NOTIFICATIONS(ManifestPermissionConstants.POST_NOTIFICATIONS),
  PROCESS_OUTGOING_CALLS(ManifestPermissionConstants.PROCESS_OUTGOING_CALLS),
  QUERY_ALL_PACKAGES(ManifestPermissionConstants.QUERY_ALL_PACKAGES),
  READ_ASSISTANT_APP_SEARCH_DATA(ManifestPermissionConstants.READ_ASSISTANT_APP_SEARCH_DATA),
  READ_BASIC_PHONE_STATE(ManifestPermissionConstants.READ_BASIC_PHONE_STATE),
  READ_CALENDAR(ManifestPermissionConstants.READ_CALENDAR),
  READ_CALL_LOG(ManifestPermissionConstants.READ_CALL_LOG),
  READ_CONTACTS(ManifestPermissionConstants.READ_CONTACTS),
  READ_EXTERNAL_STORAGE(ManifestPermissionConstants.READ_EXTERNAL_STORAGE),
  READ_HOME_APP_SEARCH_DATA(ManifestPermissionConstants.READ_HOME_APP_SEARCH_DATA),
  READ_INPUT_STATE(ManifestPermissionConstants.READ_INPUT_STATE),
  READ_LOGS(ManifestPermissionConstants.READ_LOGS),
  READ_MEDIA_AUDIO(ManifestPermissionConstants.READ_MEDIA_AUDIO),
  READ_MEDIA_IMAGES(ManifestPermissionConstants.READ_MEDIA_IMAGES),
  READ_MEDIA_VIDEO(ManifestPermissionConstants.READ_MEDIA_VIDEO),
  READ_NEARBY_STREAMING_POLICY(ManifestPermissionConstants.READ_NEARBY_STREAMING_POLICY),
  READ_PHONE_NUMBERS(ManifestPermissionConstants.READ_PHONE_NUMBERS),
  READ_PHONE_STATE(ManifestPermissionConstants.READ_PHONE_STATE),
  READ_PRECISE_PHONE_STATE(ManifestPermissionConstants.READ_PRECISE_PHONE_STATE),
  READ_SMS(ManifestPermissionConstants.READ_SMS),
  READ_SYNC_SETTINGS(ManifestPermissionConstants.READ_SYNC_SETTINGS),
  READ_SYNC_STATS(ManifestPermissionConstants.READ_SYNC_STATS),
  READ_VOICEMAIL(ManifestPermissionConstants.READ_VOICEMAIL),
  REBOOT(ManifestPermissionConstants.REBOOT),
  RECEIVE_BOOT_COMPLETED(ManifestPermissionConstants.RECEIVE_BOOT_COMPLETED),
  RECEIVE_MMS(ManifestPermissionConstants.RECEIVE_MMS),
  RECEIVE_SMS(ManifestPermissionConstants.RECEIVE_SMS),
  RECEIVE_WAP_PUSH(ManifestPermissionConstants.RECEIVE_WAP_PUSH),
  RECORD_AUDIO(ManifestPermissionConstants.RECORD_AUDIO),
  REORDER_TASKS(ManifestPermissionConstants.REORDER_TASKS),
  REQUEST_COMPANION_PROFILE_APP_STREAMING(ManifestPermissionConstants.REQUEST_COMPANION_PROFILE_APP_STREAMING),
  REQUEST_COMPANION_PROFILE_AUTOMOTIVE_PROJECTION(ManifestPermissionConstants.REQUEST_COMPANION_PROFILE_AUTOMOTIVE_PROJECTION),
  REQUEST_COMPANION_PROFILE_COMPUTER(ManifestPermissionConstants.REQUEST_COMPANION_PROFILE_COMPUTER),
  REQUEST_COMPANION_PROFILE_WATCH(ManifestPermissionConstants.REQUEST_COMPANION_PROFILE_WATCH),
  REQUEST_COMPANION_RUN_IN_BACKGROUND(ManifestPermissionConstants.REQUEST_COMPANION_RUN_IN_BACKGROUND),
  REQUEST_COMPANION_SELF_MANAGED(ManifestPermissionConstants.REQUEST_COMPANION_SELF_MANAGED),
  REQUEST_COMPANION_START_FOREGROUND_SERVICES_FROM_BACKGROUND(ManifestPermissionConstants.REQUEST_COMPANION_START_FOREGROUND_SERVICES_FROM_BACKGROUND),
  REQUEST_COMPANION_USE_DATA_IN_BACKGROUND(ManifestPermissionConstants.REQUEST_COMPANION_USE_DATA_IN_BACKGROUND),
  REQUEST_DELETE_PACKAGES(ManifestPermissionConstants.REQUEST_DELETE_PACKAGES),
  REQUEST_IGNORE_BATTERY_OPTIMIZATIONS(ManifestPermissionConstants.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS),
  REQUEST_INSTALL_PACKAGES(ManifestPermissionConstants.REQUEST_INSTALL_PACKAGES),
  REQUEST_OBSERVE_COMPANION_DEVICE_PRESENCE(ManifestPermissionConstants.REQUEST_OBSERVE_COMPANION_DEVICE_PRESENCE),
  REQUEST_PASSWORD_COMPLEXITY(ManifestPermissionConstants.REQUEST_PASSWORD_COMPLEXITY),
  RESTART_PACKAGES(ManifestPermissionConstants.RESTART_PACKAGES),
  SCHEDULE_EXACT_ALARM(ManifestPermissionConstants.SCHEDULE_EXACT_ALARM),
  SEND_RESPOND_VIA_MESSAGE(ManifestPermissionConstants.SEND_RESPOND_VIA_MESSAGE),
  SEND_SMS(ManifestPermissionConstants.SEND_SMS),
  SET_ALARM(ManifestPermissionConstants.SET_ALARM),
  SET_ALWAYS_FINISH(ManifestPermissionConstants.SET_ALWAYS_FINISH),
  SET_ANIMATION_SCALE(ManifestPermissionConstants.SET_ANIMATION_SCALE),
  SET_DEBUG_APP(ManifestPermissionConstants.SET_DEBUG_APP),
  SET_PREFERRED_APPLICATIONS(ManifestPermissionConstants.SET_PREFERRED_APPLICATIONS),
  SET_PROCESS_LIMIT(ManifestPermissionConstants.SET_PROCESS_LIMIT),
  SET_TIME(ManifestPermissionConstants.SET_TIME),
  SET_TIME_ZONE(ManifestPermissionConstants.SET_TIME_ZONE),
  SET_WALLPAPER(ManifestPermissionConstants.SET_WALLPAPER),
  SET_WALLPAPER_HINTS(ManifestPermissionConstants.SET_WALLPAPER_HINTS),
  SIGNAL_PERSISTENT_PROCESSES(ManifestPermissionConstants.SIGNAL_PERSISTENT_PROCESSES),
  SMS_FINANCIAL_TRANSACTIONS(ManifestPermissionConstants.SMS_FINANCIAL_TRANSACTIONS),
  START_FOREGROUND_SERVICES_FROM_BACKGROUND(ManifestPermissionConstants.START_FOREGROUND_SERVICES_FROM_BACKGROUND),
  START_VIEW_APP_FEATURES(ManifestPermissionConstants.START_VIEW_APP_FEATURES),
  START_VIEW_PERMISSION_USAGE(ManifestPermissionConstants.START_VIEW_PERMISSION_USAGE),
  STATUS_BAR(ManifestPermissionConstants.STATUS_BAR),
  SUBSCRIBE_TO_KEYGUARD_LOCKED_STATE(ManifestPermissionConstants.SUBSCRIBE_TO_KEYGUARD_LOCKED_STATE),
  SYSTEM_ALERT_WINDOW(ManifestPermissionConstants.SYSTEM_ALERT_WINDOW),
  TRANSMIT_IR(ManifestPermissionConstants.TRANSMIT_IR),
  UNINSTALL_SHORTCUT(ManifestPermissionConstants.UNINSTALL_SHORTCUT),
  UPDATE_DEVICE_STATS(ManifestPermissionConstants.UPDATE_DEVICE_STATS),
  UPDATE_PACKAGES_WITHOUT_USER_ACTION(ManifestPermissionConstants.UPDATE_PACKAGES_WITHOUT_USER_ACTION),
  USE_BIOMETRIC(ManifestPermissionConstants.USE_BIOMETRIC),
  USE_EXACT_ALARM(ManifestPermissionConstants.USE_EXACT_ALARM),
  USE_FINGERPRINT(ManifestPermissionConstants.USE_FINGERPRINT),
  USE_FULL_SCREEN_INTENT(ManifestPermissionConstants.USE_FULL_SCREEN_INTENT),
  USE_ICC_AUTH_WITH_DEVICE_IDENTIFIER(ManifestPermissionConstants.USE_ICC_AUTH_WITH_DEVICE_IDENTIFIER),
  USE_SIP(ManifestPermissionConstants.USE_SIP),
  UWB_RANGING(ManifestPermissionConstants.UWB_RANGING),
  VIBRATE(ManifestPermissionConstants.VIBRATE),
  WAKE_LOCK(ManifestPermissionConstants.WAKE_LOCK),
  WRITE_APN_SETTINGS(ManifestPermissionConstants.WRITE_APN_SETTINGS),
  WRITE_CALENDAR(ManifestPermissionConstants.WRITE_CALENDAR),
  WRITE_CALL_LOG(ManifestPermissionConstants.WRITE_CALL_LOG),
  WRITE_CONTACTS(ManifestPermissionConstants.WRITE_CONTACTS),
  WRITE_EXTERNAL_STORAGE(ManifestPermissionConstants.WRITE_EXTERNAL_STORAGE),
  WRITE_GSERVICES(ManifestPermissionConstants.WRITE_GSERVICES),
  WRITE_SECURE_SETTINGS(ManifestPermissionConstants.WRITE_SECURE_SETTINGS),
  WRITE_SETTINGS(ManifestPermissionConstants.WRITE_SETTINGS),
  WRITE_SYNC_SETTINGS(ManifestPermissionConstants.WRITE_SYNC_SETTINGS),
  WRITE_VOICEMAIL(ManifestPermissionConstants.WRITE_VOICEMAIL);
}
